"""
#3.关键字参数
    函数调用时,指定函数名称,称为关键字参数(与默认参数不同,这里是函数调用)
    注意:函数调用时,关键字参数必须在普通参数的后面
"""
#定义时 位置参数要放在默认参数前,默认参数后面必须也是默认参数


def abc(x, a=100, b=200):# 默认参数,函数定义时传参
    print(a+b+x)
#传参时100必须在a=XXX,b=XXX之前


abc(100, b=400, a=200)    # 700#关键字参数,函数调用的时候(给默认函数传参时无需按定义时的顺序一一对应)


"""
#限定关键字形参(命名关键字参数)特点
    特点:必须使用关键字方式传递参数
  限定关键字形参,是为了限制后面几个参数只能按关键字传递,这往往是因为后面几个形参名具有十分明显的含义,显示写出会提高可读性;
  或者后面几个形参随着版本更迭可能发生变化,强制关键字形式有利于保证夸版本兼容性

"""


def abc(a, *, c, d):# '*' 用来限定关键字形参
    print(a)    # 100
    print(c)    # 200
    print(d)    # 300


abc(100, c=200, d=300)#c,d必须用关键字传参